﻿#pragma once

namespace KD
{
	using MouseCode = uint16_t;

	namespace Mouse{
		enum MouseCode
		{
			// 来自 glfw3.h
			Button0			= 0,
			Button1			= 1,
			Button2			= 2,
			Button3			= 3,
			Button4			= 4,
			Button5			= 5,
			Button6			= 6,
			Button7			= 7,

			ButtonLast		= Button7,
			ButtonLeft		= Button0,
			ButtonRight		= Button1,
			ButtonMiddle	= Button2
		};
	}
}


#if(0)

#define KD_MOUSE_BUTTON_0      ::KD::Mouse::Button0
#define KD_MOUSE_BUTTON_1      ::KD::Mouse::Button1
#define KD_MOUSE_BUTTON_2      ::KD::Mouse::Button2
#define KD_MOUSE_BUTTON_3      ::KD::Mouse::Button3
#define KD_MOUSE_BUTTON_4      ::KD::Mouse::Button4
#define KD_MOUSE_BUTTON_5      ::KD::Mouse::Button5
#define KD_MOUSE_BUTTON_6      ::KD::Mouse::Button6
#define KD_MOUSE_BUTTON_7      ::KD::Mouse::Button7
#define KD_MOUSE_BUTTON_LAST   ::KD::Mouse::ButtonLast
#define KD_MOUSE_BUTTON_LEFT   ::KD::Mouse::ButtonLeft
#define KD_MOUSE_BUTTON_RIGHT  ::KD::Mouse::ButtonRight
#define KD_MOUSE_BUTTON_MIDDLE ::KD::Mouse::ButtonMiddle

//inline std::ostream& operator<<(std::ostream& os, MouseCode mouseCode)
//{
//	os << static_cast<int32_t>(mouseCode);
//	return os;
//}

#endif